QuickReport

Otázka od: Lukas Barton

9. 3. 2004 16:02

Zdravim,

   mam problem se sestavama pomoci QuickReportu.

   Generuji dost dlouhou sestavu na tisk carovych kodu (testovaci ma 84
stranek - asi 5000 radku tabulky).
Kod, ktery ma zobrazovat carovy kod, tak ze jej vykresluje na TRQImage v
BeforePrint eventu odpovidajici (jedine) detail band pracuje spravne, avsak
nekdy se od jisteho mista uz na miste caroveho kodu zobrazuje stale stejny
obrazek - komponenta TRQImage, i kdyz to nani vykreslim, to ignoruje a
zobrazuje (v nahledu i pri tisku) stale to same.

 Kod je asi tento:

procedure TqrStitkyNew.DetailBandBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
  var b:TBitmap;
      t,l:double;
begin

dmData.AsBarcode.Text:=dmData.tbStitky.FieldByName('carkod').AsString;

        b:=TBitmap.Create;
        b.Height:=24;
        b.Width:=95;
        dmData.AsBarcode.DrawBarcode(b.Canvas);
        qiBarCode1.Picture.Bitmap.Height := b.Height;
        qiBarCode1.Picture.Bitmap.Width := b.Width;
        qiBarCode1.Picture.Bitmap.Canvas.Draw(0,0, b);
        b.free;
end;

 Setkaly jste se nekdy s timto problemem? Toto uz je moje treti reseni,
ktere nefunguje nejmin casto (predtim jsem mel vlastni komponentu podedenou
z TQRImage).

    Diky za jakoukoliv radu,


          Lukas Barton





Odpovedá: Karel Pecinka

9. 3. 2004 16:56

Ja v reportu tisknu takto a funguje to OK:

  if x<>-1 then Obr.Picture.Bitmap:=ObrazkyList.GraphicCell[x] else
                Obr.Picture.Bitmap:=nil;

Zkus tam misto Bitmap.Canvas.Draw rovnou priradit Bitmapu carovyho kodu,
mozna to bude fungovat. V pripade, ze na radku neni zadnej obrazek,
musis zadat nil, jinak se ti bude tisknout ten posledne prirazenej.

Karel



-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Lukas Barton
Sent: Tuesday, March 09, 2004 3:51 PM
To: delphi-l@clexpert.cz
Subject: QuickReport


Zdravim,

   mam problem se sestavama pomoci QuickReportu.

   Generuji dost dlouhou sestavu na tisk carovych kodu (testovaci ma 84
stranek - asi 5000 radku tabulky). Kod, ktery ma zobrazovat carovy kod,
tak ze jej vykresluje na TRQImage v BeforePrint eventu odpovidajici
(jedine) detail band pracuje spravne, avsak nekdy se od jisteho mista uz
na miste caroveho kodu zobrazuje stale stejny obrazek - komponenta
TRQImage, i kdyz to nani vykreslim, to ignoruje a zobrazuje (v nahledu i
pri tisku) stale to same.

 Kod je asi tento:

procedure TqrStitkyNew.DetailBandBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
  var b:TBitmap;
      t,l:double;
begin

dmData.AsBarcode.Text:=dmData.tbStitky.FieldByName('carkod').AsString;

        b:=TBitmap.Create;
        b.Height:=24;
        b.Width:=95;
        dmData.AsBarcode.DrawBarcode(b.Canvas);
        qiBarCode1.Picture.Bitmap.Height := b.Height;
        qiBarCode1.Picture.Bitmap.Width := b.Width;
        qiBarCode1.Picture.Bitmap.Canvas.Draw(0,0, b);
        b.free;
end;

 Setkaly jste se nekdy s timto problemem? Toto uz je moje treti reseni,
ktere nefunguje nejmin casto (predtim jsem mel vlastni komponentu
podedenou z TQRImage).

    Diky za jakoukoliv radu,


          Lukas Barton







Odpovedá: Lukas Barton

9. 3. 2004 17:49

Zdravim,

  toto funguje zase o kus lepe: uz to jenom tak jeden z 10 000 kodu v
nahledu udela spatne. Pri tisku zatim vse OK. Je vubec zajimave, ze to
funguje spatne jenom nekdy.

  Diky za radu,

        Lukas

----- Original Message -----
From: "Karel Pecinka" <k.pecinka@seznam.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, March 09, 2004 4:26 PM
Subject: Re: QuickReport


> Ja v reportu tisknu takto a funguje to OK:
>
> if x<>-1 then Obr.Picture.Bitmap:=ObrazkyList.GraphicCell[x] else
> Obr.Picture.Bitmap:=nil;
>
> Zkus tam misto Bitmap.Canvas.Draw rovnou priradit Bitmapu carovyho kodu,
> mozna to bude fungovat. V pripade, ze na radku neni zadnej obrazek,
> musis zadat nil, jinak se ti bude tisknout ten posledne prirazenej.
>
> Karel
>
>
>
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
> Behalf Of Lukas Barton
> Sent: Tuesday, March 09, 2004 3:51 PM
> To: delphi-l@clexpert.cz
> Subject: QuickReport
>
>
> Zdravim,
>
> mam problem se sestavama pomoci QuickReportu.
>
> Generuji dost dlouhou sestavu na tisk carovych kodu (testovaci ma 84
> stranek - asi 5000 radku tabulky). Kod, ktery ma zobrazovat carovy kod,
> tak ze jej vykresluje na TRQImage v BeforePrint eventu odpovidajici
> (jedine) detail band pracuje spravne, avsak nekdy se od jisteho mista uz
> na miste caroveho kodu zobrazuje stale stejny obrazek - komponenta
> TRQImage, i kdyz to nani vykreslim, to ignoruje a zobrazuje (v nahledu i
> pri tisku) stale to same.
>
> Kod je asi tento:
>
> procedure TqrStitkyNew.DetailBandBeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
> var b:TBitmap;
> t,l:double;
> begin
>
> dmData.AsBarcode.Text:=dmData.tbStitky.FieldByName('carkod').AsString;
>
> b:=TBitmap.Create;
> b.Height:=24;
> b.Width:=95;
> dmData.AsBarcode.DrawBarcode(b.Canvas);
> qiBarCode1.Picture.Bitmap.Height := b.Height;
> qiBarCode1.Picture.Bitmap.Width := b.Width;
> qiBarCode1.Picture.Bitmap.Canvas.Draw(0,0, b);
> b.free;
> end;
>
> Setkaly jste se nekdy s timto problemem? Toto uz je moje treti reseni,
> ktere nefunguje nejmin casto (predtim jsem mel vlastni komponentu
> podedenou z TQRImage).
>
> Diky za jakoukoliv radu,
>
>
> Lukas Barton
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ---
> avast! Antivirus: Inbound message clean.
> Virus Database (VPS): 0403-5, 03/09/2004
> Tested on: 9.3.2004 16:59:12
> avast! is copyright (c) 2000-2003 ALWIL Software.
> http://www.avast.com
>
>
>
>